Material Entry Tool Path

ABSTRACT

A method of generating control code for a CNC machine is described. The method includes the steps of: (1) generating in a computer a first plurality of coordinate values, x i , y i , z i , said first plurality of coordinate values representing a plurality of first connected line segments which surround a vertical axis, said first connected line segments gradually descending to a first predetermined depth, (2) generating in a computer a second plurality of coordinate values x j , y j , z j , said second coordinate values representing a plurality of second connected line segments which surround the vertical axis, said plurality of second connected line segments having a starting point at approximately the first predetermined depth, and gradually descending to a second predetermined depth greater than the first depth, and (3) converting the first and the second coordinate values to a code for controlling the CNC machine.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/288,431, filed Dec. 21, 2009, the contents of which are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to a computer aided manufacturing (CAM) process computer program that generates commands for use by a computer numerical control (CNC) milling machine, and more particularly, a computer program that generates commands for a CNC milling machine for forming a starting hole in a workpiece.

2. Background Information

The milling of an inside pocket in a surface of a workpiece by a vertical milling machine generally requires that a starting hole of preferably small diameter be first cut. The starting hole is cut using a material entry tool path which moves a cylindrical cutting tool in an axial direction, approximately perpendicular to the surface of the workpiece, from outside the workpiece, to a predetermined depth below the surface of the workpiece. After the cutting tool reaches the predetermined depth, a constant depth machining process in the horizontal plane typically commences for milling the pocket.

Two methods are commonly used to cut the starting hole. The first method uses a drill bit as the cutting tool. The material entry tool path is in the direction of the axis of the drill bit. Following the forming of the starting hole, a milling cutter of smaller diameter than the starting hole is fed into the starting hole in order to start the milling in the horizontal plane. Disadvantageously, drill bits suitable for drilling in metal have pointed ends, thus requiring the starting hole to be cleaned out by an extra milling operation before constant depth milling in the horizontal plane can commence. A further disadvantage of using a drill bit for a starting hole is that the drill bit must be exchanged for a milling cutter before horizontal milling for cutting a pocket can be initiated.

A second, and more recent method of forming a starting hole, uses an end mill. An end mill typically includes on its side, two or more helical shaped blades, called teeth, which have sharp cutting edges. The blades or teeth are separated by recessed helical grooves called flutes. Typically, the bottom or end of the end mill also contains two or more blades or teeth with sharp cutting edges. Consequently, an end mill can cut material on it's sides, by moving in horizontal direction relative to axis of the end mill, or can cut material on it's end, by moving in a direction of the axis of the end mill. With simultaneous motion in horizontal and axial directions, an end mill cuts with portions of both its side and bottom cutting edges.

Forming a starting hole with an end mill generally involves a material entry tool path having a helix-like shape, i.e. a helix whose radii may vary as a function of angle and/or depth, that advances into the workpiece in a direction generally perpendicular to the surface of the workpiece. If the helix is circular of constant radius, as is usual in the prior art, a single hole having a constant radius that is equal to the radius of the helix plus the radius of the cutting tool is formed to the desired depth of the first horizontal milling operation. By using an end mill in a helix-like tool path to form the starting hole, the bottom of the starting hole is flat and the milling cutter need not be changed to initiate the horizontal milling process for cutting the pocket.

The use of an end mill in a material entry toolpath is not without problems. During a machining process with an end mill, thin chips of material are cut, sheared or shorn from the workpiece. If the chips are not sufficiently evacuated from the work piece during the cutting process, they interfere with the cutting action of the tool by jamming between the cutting edges of the milling cutter and the work piece. The problem is exacerbated during the forming of starting hole because the preferably small diameter of the starting hole provides only a limited space for the chips to move away from the tool. While at shallow depths, the chips created by a helix-like tool path can escape relatively easily through the open space along the flutes of the milling cutter. However, as the depth of cut increases, friction between the chips, the walls of the work piece and the flutes, increases to a point where chips start to be packed together. Consequently, it becomes increasingly more difficult for the accumulation of chips to be evacuated through the space between the flutes as the depth of the starting hole is made larger. Beyond a certain depth of cut, some chips get caught and squeezed between the cutting edges of the tool and the wall of the region from which material has already been removed. At some point, the chips can become so tightly packed that the milling cutter is forced to re-cut them. This re-cutting interferes with the normal cutting action of the end mill in that some chips actually wedge between the cutting edge of the milling cutter and the work piece. This wedging action damages the milling cutter's cutting edge by causing small chips in the coating of a carbide milling cutter. Too many such small chips in the cutting edge can cause tool failure and possible breakage of the milling cutter. In softer materials, such as aluminum, the friction can cause the squeezed chips to rapidly heat to the melting point and become welded to the milling cutter, completely compromising its cutting ability and leading to failure or breakage of the milling cutter.

Prior art CAM software typically mills pockets by a succession of shallow horizontal milling operations in which the depth of each cut is less than one-half the diameter of the milling cutter. Such shallow cutting depths generally avoid the problem of chip re-cutting. The disadvantage of this method is that several cuts at shallow depths are required to get down to the desired depth of the pocket.

Recent advances in CAM software for controlling CNC milling machines, such as Truemill®, made by Surfware, Inc., allows the depth of each horizontal milling cut for forming a pocket to be at least as great as twice the diameter of the milling cutter, thus increasing the removal rate of material. However, forming a starting hole with a milling cutter to such depths using known material entry tool paths frequently results in excessive tool wear and possible tool breakage.

In consideration of the above, it would be desirable to have a material entry tool path that would allow for machining a starting hole having a depth of at least twice the diameter of a milling cutter and still avoid the problem of having chips of material accumulating between the cutting edges of the tool and the walls of the region from which material has already been removed.

BRIEF SUMMARY OF THE INVENTION

Briefly stated the present invention is a method of generating control code for a CNC machine comprising the steps of: generating in a computer a first plurality of coordinate values, x_(i), y_(i), z_(i), said first plurality of coordinate values representing a plurality of first connected line segments which surround a vertical axis, said first connected line segments gradually descending to a first predetermined depth, generating in a computer a second plurality of coordinate values x_(j), y_(j), z_(j), said second plurality of coordinate values representing a plurality of second connected line segments which surround the vertical axis, said plurality of second connected line segments having a starting point at approximately the first predetermined depth, and gradually descending to a second predetermined depth greater than the first depth, and converting the first and the second coordinate values to a code for controlling the CNC machine, wherein, when said code is executed in said CNC machine, a milling cutter mounted to a spindle of the CNC machine forms in a workpiece, a first hole based on the first plurality of coordinate values and a second hole based on the second plurality of coordinate values such that a ledge having a width greater than a chip thickness is formed in the workpiece at a boundary of the first hole and the second hole.

In another aspect, the present invention comprises an apparatus for generating control code for a CNC machine comprising: an arithmetic processor coupled to a memory, wherein the processor is programmed to generate the control code by: generating in a computer a first plurality of coordinate values, x_(i), y_(i), z_(i), said first plurality of coordinate values representing a plurality of first connected line segments, said first connected line segments which surround a vertical axis gradually descending to a first predetermined depth, generating in a computer a second plurality of coordinate values x_(j), y_(i), z_(j), said second plurality of coordinate values representing a plurality of second connected line segments which surround the vertical axis, said plurality of second connected line segments having a starting point at approximately the first predetermined depth, and gradually descending to a second predetermined depth greater than the first depth, and converting the first and the second coordinate values to a code for controlling the CNC machine, wherein, when said code is executed in said CNC machine, a milling cutter mounted to a spindle of the CNC machine forms in a workpiece, a first hole based on the first plurality of coordinate values and a second hole based on the second plurality of coordinate values such that a ledge having a width greater than a chip thickness is formed in the workpiece at a boundary of the first hole and the second hole.

In a further aspect, the present invention comprises a non-transitory computer readable storage medium with an executable program stored thereon, wherein the program instructs an arithmetic processor to perform the following steps: generating in a computer a first plurality of coordinate values, x_(i), y_(i), z_(i), said first plurality of coordinate values representing a plurality of first connected line segments which surround a vertical axis, said first connected line segments which surround the vertical axis gradually descending to a first predetermined depth, generating in a computer a second plurality of coordinate values x_(j), y_(j), z_(j), said second plurality of coordinate values representing a plurality of second connected line segments which surround the vertical axis, said plurality of second connected line segments having a starting point at approximately the first predetermined depth, and gradually descending to a second predetermined depth greater than the first depth, and converting the first and the second coordinate values to a code for controlling the CNC machine, wherein, when said code is executed in said CNC machine, a milling cutter mounted to a spindle of the CNC machine forms in a workpiece, a first hole based on the first plurality of coordinate values and a second hole based on the second plurality of coordinate values such that a ledge having a width greater than a chip thickness is formed in the workpiece at a boundary of the first hole and the second hole.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The foregoing summary, as well as the following detailed description of preferred embodiments of the invention, will be better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings embodiments which are presently preferred. It should be understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.

In the drawings:

FIG. 1 is a diagram of a tool path for milling a starting hole in a workpiece in accordance with a preferred embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Certain terminology is used in the following description for convenience only and is not limiting. In this application, the term vertical refers to a direction parallel to the axis of rotation of the milling cutter, collet and spindle of a CNC machine and the term horizontal refers to a direction normal to the axis of rotation of the milling cutter regardless of the actual orientation of the CNC machine. In terms of a Cartesian coordinate system, the Z direction is parallel to the vertical plane and the X and Y directions are parallel to the horizontal plane. The term descending refers to movement in the—Z direction. The terminology includes the above-listed words, derivatives thereof and words of similar import.

In view of the problems identified in the Background Section, the following experiments were conducted:

Experiment 1

Starting holes were milled in a titanium workpiece with a one-half inch diameter end mill using a circular helix tool path of constant diameter slightly less than the diameter of the end mill. A rumbling of the milling machine was observed to occur when the depth of the milling cutter in the workpiece exceeded the diameter of the end-mill. It was determined that the rumbling was the result of the chips cut by the milling cutter being re-cut due to the chips not being fully evacuated from the starting hole as the milling cutter descended into the workpiece.

Experiment 2

Starting holes were milled in a titanium workpiece with a one-half inch diameter end mill using a circular helix tool path of smoothly decreasing radius, with the notion that the chips would be evacuated from the hole due to the diameter of the hole above the actual cutting plane at the end of the end mill being large compared to the diameter of the hole at the cutting plane. It was determined that a starting hole cut with a circular helix tool path of smoothly decreasing radius did not allow for the starting hole to be cut substantially deeper than a hole cut using a helix tool path of constant radius before chip re-cutting occurred.

Experiment 3

Starting holes were milled using a one-half inch diameter end mill. A first hole was milled at a first diameter to a depth of about the diameter of the milling cutter using a circular helix tool path. The starting hole was made deeper using the milling cutter to mill successive concentric holes, each having a smaller diameter than the preceding hole. The amount that each successive hole was made smaller was varied to determine if a hole could be milled to a depth of twice the diameter of the milling cutter without substantial re-cutting of the chips. It was determined that if the diameter of each successive hole was made smaller by about twice the diameter of the chip thickness, successive holes of deceasing depth could be milled such that the starting hole could have a depth of at least twice the diameter of the milling cutter without substantial re-cutting of the chips. The results obtained in Experiment 3 are shown in Table 1.

TABLE 1 Cutter 1^(st) Step- 2^(nd) Step- 3^(rd) Total Material Diameter Depth in Depth in Depth Depth Tita- 0.5 in 0.55 in .005 .33 in .005 .22 in 1.1 in nium in in

Referring now to FIG. 1, there is shown a tool path 10 of a milling cutter cutting a starting hole 22 in a workpiece 1 according to a preferred embodiment of the invention. The tool path 10 is generated by: (1) generating with a computer, a first plurality of coordinate values x_(i), y_(i), z_(i) 14 a, where the first coordinate values 14 a represent a plurality of first connected line segments 18 a, 1 to n, which surround a vertical axis 12, which gradually descend in the “z” direction to a first predetermined depth; (2) generating with a computer, a second plurality of -coordinate values x_(j), y_(j), z_(j) 14 b, where the second coordinate values 14 b represent a plurality of second connected line segments 18 b, n+1 to n+m, which surround the vertical axis 12, and which gradually descend in the “z” direction to a second predetermined depth, and where the second predetermined depth is greater than the first predetermined depth. The tool path 10 is such that when the first coordinate values 14 a and the second coordinate values 14 b are converted to a code for controlling a CNC machine, and when the code is executed in the CNC machine, a milling cutter mounted to a spindle of the CNC machine forms in the workpiece 1, a first hole 22 a based on the first plurality of coordinate values 14 a and a second hole 22 b based on the second plurality of coordinate values 14 b such that a ledge 20 having a width preferably greater than a chip thickness is formed in the workpiece at a boundary of the first hole 22 a and the second hole 22 b.

The chip thickness resulting from a helix tool path is a function of the pitch of the helix, the feed rate of the milling cutter and the rotational speed of the milling cutter and is determinable by known methods such as that described in the paper, Calculations Of Chip Thickness And Cutting Forces In Flexible End Milling, M. Wan and W. H. Zhang, International Journal of Advanced Manufacturing Technology (2006) 29: 637-647, a copy of which is attached and is hereby incorporated in its entirety.

In the preferred embodiment, the first coordinate values 14 a and the second coordinate values 14 b are determined by the equations of a helix, where the first coordinate values, x_(i), y_(i) and z_(i), correspond to a first curve in space in accordance with:

x _(i) =a cos t _(i) +x ₀

y _(i) =b sin t _(i) +y ₀

z _(i) =−c ₁ t _(i) +z ₀; and

the second coordinate values, x_(j), y_(j), z_(j), correspond to a second curve in space in accordance with:

x _(j)=(a−s)cos t _(j) +x ₀

y _(j)=(b−s)sin t _(j) +y ₀

z _(j)=−(2πc ₁ +c ₂ t _(j))+z ₀,

where 0≦t_(i)<2π, 0≦t_(j)<2π, 0≦s≦a, b, and s is greater than the chip thickness.

However, the first and the second coordinate values 14 a, 14 b need not be computed from the equations of a helix as long as the coordinate values 14 a, 14 b result in smoothly connected line segments 18 a, 18 b which gradually descend in the direction of the Z axis.

In the preferred embodiment, the first connected line segments 18 a and the second connected line segments 18 b are such that they form holes of circular cross section, as would be the result of the parameter “a” being equal to the parameter “b”. However, in other embodiments, the first and the second holes 22 a, 22 b need not be of circular cross section. For example, if the parameter “a” was not equal to the parameter “b”, the cross section of each hole 22 a, 22 b would be an ellipse.

Also, the first and the second coordinate values 14 a, 14 b and the resulting line segments 18 a, 18 b need not be exclusively arcs. In another preferred embodiment, each line segment 18 a, 18 b comprises two arcs, and two straight lines which connect the ith line segment with the i+1 line segment and the i−1 line segment so as to form a slot like cross-section of each hole 22 a, 22 b.

Further, the cross-section of the first and the second holes 22 a, 22 b need not be geometrically similar. That is for example, the first hole 22 a could be circular in cross-section and the second hole 22 b could be triangular in cross-section. Such configuration would be suitable provided that at least a portion of the ledge 20 was greater than a chip thickness.

While in the preferred embodiment, the number of successive holes 22 a, 22 b whose cross-section dimensions successively decrease are two, the number of holes having a decreasing cross-section dimension is not limited to two holes 22 a, 22 b but could be three, as for example in experiment 3, or could be greater than three.

In the preferred embodiment, the depth of the first hole 22 a is less than the diameter of the milling cutter, and the diameter of the second hole 22 b and each succeeding hole (not shown) is made successively smaller. However, in some cases, the depth of the first hole 22 a could be larger than the diameter of the milling cutter depending on type of material, the type of the end mill, the surface speed of the end mill flutes and the chip load per tooth. In practice, the optimum depth of the first hole 22 a, the second hole 22 b, and each succeeding hole would be determined by a machinist performing a test cut or cuts in the material to be used for the workpiece.

Preferably the computer used for generating the control code is a programmable type of computer of a kind commonly called a personal computer. Preferably, the computer employs one or more arithmetic processor chips, a random access memory, non-volatile memory such as semiconductor read only memory, a hard disk, removable read/write memory drives such as a floppy disk drive and/or CD disk drive, a paper tape and/or a magnetic tape drive, a keyboard, a mouse, and a video display. Preferably, the computer utilizes the Windows™ software operating system manufactured by Microsoft Corporation.

Preferably, the code for execution in the CNC machine is transferred from the computer to the CNC machine using one of any well known wire or wireless interface standards. Alternatively, the code may be recorded on a removable media such as a floppy disk, a CD disk, a flash memory stick, a magnetic tape or a paper tape, for transfer to the CNC machine. However, the computer program is not required to be generated by the aforementioned hardware and software environment. Alternatively, for example, the computer program for generating the code for the CNC machine could be generated within the computer of the CNC machine.

It will be appreciated by those skilled in the art that changes could be made to the embodiments described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular embodiments disclosed, but it is intended to cover modifications within the spirit and scope of the present invention as defined by the appended claims. 

1. A method of generating control code for a CNC machine comprising the steps of: generating in a computer a first plurality of coordinate values, x_(i), y_(i), z_(i), said first plurality of coordinate values representing a plurality of first connected line segments which surround a vertical axis, said first connected line segments gradually descending to a first predetermined depth, generating in a computer a second plurality of coordinate values x_(j), y_(j), z_(j), said second plurality of coordinate values representing a plurality of second connected line segments which surround the vertical axis, said plurality of second connected line segments having a starting point at approximately the first predetermined depth, and gradually descending to a second predetermined depth greater than the first depth, and converting the first and the second coordinate values to a code for controlling the CNC machine, wherein, when said code is executed in said CNC machine, a milling cutter mounted to a spindle of the CNC machine forms in a workpiece, a first hole based on the first plurality of coordinate values and a second hole based on the second plurality of coordinate values such that a ledge having a width greater than a chip thickness is formed in the workpiece at a boundary of the first hole and the second hole.
 2. The method of claim 1, wherein the first coordinate values x_(i), y_(i), and z _(i) correspond to points on a first curve in space in accordance with: x _(i) =a cos t _(i) +x ₀ y _(i) =b sin t _(i) +y ₀ z _(i) =−c ₁ t _(i) +z ₀; and the second coordinate values x_(j), y_(j), z_(j) correspond to points on a second curve in space in accordance with: x _(j)=(a−s)cos t _(j) +x ₀ y _(j)=(b−s)sin t _(j) +y ₀ z _(j)=−(2πc ₁ +c ₂ t _(j))+z ₀ where 0≦t_(i)≦2 π, 0≦t_(j)≦2π, and s is greater of the ledge.
 3. The method of claim 2, where a=b.
 4. The method of claim 2, where c2<c1.
 5. An apparatus for generating control code for a CNC machine comprising: an arithmetic processor coupled to a memory, wherein the processor is programmed to generate the control code by: generating in a computer a first plurality of coordinate values, x_(i), y_(i), z_(i), said first plurality of coordinate values representing a plurality of first connected line segments which surround a vertical axis, said first connected line segments gradually descending to a first predetermined depth, generating in a computer a second plurality of coordinate values x_(j), y_(j), z_(j), said second plurality of coordinate values representing a plurality of second connected line segments which surround the vertical axis, said plurality of second connected line segments having a starting point at approximately the first predetermined depth, and gradually descending to a second predetermined depth greater than the first depth, and converting the first and the second coordinate values to a code for controlling the CNC machine, wherein, when said code is executed in said CNC machine, a milling cutter mounted to a spindle of the CNC machine forms in a workpiece, a first hole based on the first plurality of coordinate values and a second hole based on the second plurality of coordinate values such that a ledge having a width greater than a chip thickness is formed in the workpiece at a boundary of the first hole and the second hole.
 6. The apparatus of claim 5, wherein the first coordinate values x_(i), y_(i) and z_(i) correspond to points on a first curve in space in accordance with: x _(i) =a cos t _(i) +x ₀ y _(i) =b sin t _(i) +y ₀ z _(i) =−c ₁ t _(i) +z ₀, and the second coordinate values x_(j), y_(j), z_(j) correspond to points on a second curve in space in accordance with: x _(j)=(a−s)cos t _(j) +x ₀ y _(j)=(b−s)sin t _(j) +y ₀ z _(j)=−(2πc ₁ +c ₂ t _(j))+z ₀ where 0≦t_(i)≦2 π, 0≦t_(j)≦2π, and s equals the width of the ledge.
 7. The apparatus of claim 6, where a=b.
 8. The apparatus of claim 6, where c2<c1.
 9. A non-transitory computer readable storage medium with an executable program stored thereon, wherein the program instructs an arithmetic processor to perform the following steps: generating in a computer a first plurality of coordinate values, x_(i), y_(i), z_(i), said first plurality of coordinate values representing a plurality of first connected line segments which surround a vertical axis, said first connected line segments gradually descending to a first predetermined depth, generating in a computer a second plurality of coordinate values x_(j), y_(j), z_(j), said second plurality of coordinate values representing a plurality of second connected line segments which surround the vertical axis, said plurality of second connected line segments having a starting point at approximately the first predetermined depth, and gradually descending to a second predetermined depth greater than the first depth, and converting the first and the second coordinate values to a code for controlling the CNC machine, wherein, when said code is executed in said CNC machine, a milling cutter mounted to a spindle of the CNC machine forms in a workpiece, a first hole based on the first plurality of coordinate values and a second hole based on the second plurality of coordinate values such that a ledge having a width greater than a chip thickness is formed in the workpiece at a boundary of the first hole and the second hole.
 10. The non-transitory computer readable storage medium of claim 9, wherein the first coordinate values x_(i), y_(i) and z_(i) correspond to points on a first curve in space in accordance with: x _(i) =a cos t _(i) +x ₀ y _(i) =b sin t _(i) +y ₀ z _(i) =−c ₁ t _(i) +z ₀; and the second coordinate values x_(j), y_(j), z_(j) correspond to points on a second curve in space in accordance with: x _(j)=(a−s)cos t _(j) +x ₀ y _(j)=(b−s)sin t _(j) +y ₀ z _(j)=−(2πc ₁ +c ₂ t _(j))+z ₀ where 0≦t_(i)≦2 π, 0≦t_(j)≦2π, and s equals width of the ledge.
 11. The non-transitory computer readable storage medium of claim 10, where a=b.
 12. The non-transitory computer readable storage medium of claim 10, where c2<c1. 